/**
 * 
 */
package com.fashop.mapper;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.fashop.bean.producto.ProductoOut;
import com.fashop.enabler.container.ContainerEnabler;
import com.fashop.jpa.Producto;
import com.fashop.util.Utilidades;

/**
 * @author Alan Dávila
 * e-mail ustargab@gmail.com
 * date 15/01/2014 22:48:18
 */
@Component("listadoProductoMapperOut")
public class ListadoProductoMapperOut implements GenericMapper<List<Producto>, List<ProductoOut>> {

	@Resource(name = "productoMapperOut")
	private GenericMapper<Producto, ProductoOut> productoMapperOut;
	@Resource(name = "containerEnablerImpl")
	private ContainerEnabler containerEnablerImpl;
	@Resource(name="utilidades")
	private Utilidades utilidades;
	/* (non-Javadoc)
	 * @see com.fashop.mapper.GenericMapper#map(java.lang.Object)
	 */
	public List<ProductoOut> map(final List<Producto> entrada) {
		List<ProductoOut> salida = null;
		Map<String, String> credenciales;
		if (entrada != null) {
			credenciales = containerEnablerImpl.getCredentials("Context");
			String auth = credenciales.get("auth");
			String token = credenciales.get("token");
			salida = new ArrayList<ProductoOut>();
			for (Producto producto : entrada) {
				ProductoOut nuevo = productoMapperOut.map(producto);
				if (auth != null && "".compareTo(auth) != 0 && token != null && "".compareTo(token) != 0) {
					nuevo.setImagenb64(containerEnablerImpl.getResource(credenciales, nuevo.getImagen()));
				} else {
					nuevo.setImagenb64(utilidades.convertImagenBytes(nuevo.getImagen()));
				}
				
				salida.add(nuevo);
			}
		}
		return salida;
	}



}
